package com.hunter.api.bean;

import com.alibaba.fastjson.JSONObject;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @version 1.0
 * @Author : Hunter.huang
 * @ClassName SqlConfigBean
 * @Date: 2019/11/21 9:51
 * Description:
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SqlConfigBean {
    //基础字段
    /**
     * 1.主键id
     * 2.显示顺序 ordinal
     * 3.是否启用 enabled
     * 4.创建时间 created_time
     * 5.创建人 created_by
     * 6.更新时间 updated_time
     * 7.更新人 updated_by
     * 8.删除时间 deleted_time
     * 9.删除人 deleted_by
     * 10.是否删除 is_deleted
     */
    private Long id;
    private Integer ordinal;
    private Integer enabled;
    public String created_time;
    private String created_by;
    private String updated_time;
    private String updated_by;
    private String deleted_time;
    private String deleted_by;
    private Integer is_deleted;


    private String code;            //sql编码(唯一)
    private String name;            //sql名称(一般简述作用)
    private String note;            //说明
    private String config_json;     //查询sql配置
    private String app_id;          //保留,用于以后多应用扩展
    private String ds_id ;          //保留,用于以后多数据库扩展
    private String tree_parent_key; //树形结构：父键字段名
    private String tree_key   ;     //树形结构：主键字段名
    private String tree_sort_asc ;  //树形结构，排序方式：1-asc；0-desc
    private String tree_sort_key;   //树形结构：排序字段名
    private String version    ;     //版本号
    private String sql_type  ;      //类型：0-查询；1-树形列表；2-执行(insert/update/delete)；3-pivot透视表；4-echarts图表需要的格式
    private String pivot_r     ;    //透视表行字段列表，以逗号分隔(保留,留作日后透视表扩展)
    private String pivot_c    ;     //透视表列字段列表，以逗号分隔(保留,留作日后透视表扩展)
    private String pivot_r_fun ;    //透视表行级聚合函数列表，以逗号分隔，函数支持：sum、avg、count、max、min(保留,留作日后透视表扩展)
    private String pivot_c_fun ;    //透视表列级聚合函数列表，以逗号分隔，函数支持：sum、avg、count、max、min(保留,留作日后透视表扩展)
    private String pivot_v ;        //透视表值字段列表，以逗号分隔(保留,留作日后透视表扩展)
    private String r2c  ;           //是否行转成列，sql_type=4时用(保留,留作echarts图表扩展)
    private String mock  ;          //mock data(保留,留作模拟数据扩展)
    private Integer is_limit;        //是否排序


    private JSONObject data  ;          //外来数据,非数据库字段


}
